<?php
 /*******************************************************************************
 * funcI($fuente, $nombre, $tipo, $long=0, $vacio=false) filtra variables recibidas por el usuario
 * Filtra las variables recibidas por el usuario escapando los string y acontando
 * a la longitud deseada devolviendo un valor por defecto en caso de no existir la fuente
 * @param String $fuente de donde procede la fuente:"p"=>POST "g"=>GET "s"=>SESSION "e"=>WEB_SERVER "c"=>cookie
 * @param String $nombre nombre de la fuente: "s"=string "i"=int "d"=double "b"=boolean "f"=float
 * @param String $tipo tipo de la fuente: 
 * @param Int $long longitud máxima permitida 
 * @param Cualquiera $vacio valor por defecto que devolverá si la fuente no existe
 * 
 * @return fuente filtrada escapando los string y con el tamaño máximo permitido
 ******************************************************************************/ 
function funcI($fuente, $nombre, $tipo, $long=0, $vacio=false) {
        //miramos la fuente
	if(!is_string($tipo) || strlen($tipo) != 1) echo "Posiblemente hay error en parametros de funcI()";
	switch($fuente) {
		case 'g' : $valor = @$_GET[$nombre]; break;
		case 'p' : $valor = @$_POST[$nombre]; break;
		case 'r' : $valor = @$_REQUEST[$nombre]; break;
		case 's' : $valor = @$_SESSION[$nombre]; break;
		case 'c' : $valor = @$_COOKIES[$nombre]; break;
		case 'e' : $valor = @$_SERVER[$nombre]; break;
		default	 : {
			$vars = parse_str($fuente);
			if(is_array($vars) && sizeof($vars) && isset($vars[$nombre])) 
                            $valor = $vars[$nombre];
			else 
                            return false;
			break;
		}
	}

	switch(strtolower($tipo)) {
		case 's' :
			$valor = trim($valor);
			if($tipo != strtoupper($tipo)) 
                            $valor = trim(strip_tags($valor));
			for($i=0; $i < 2; $i++) $valor = strtr($valor, array(
				'&#39;'		=> "'",
				'&#039;'                        => "'",
				"\\'"		=> "'",
                                                                     "'"                                  =>"&#39;"
			));
			if($long) 
                            $valor = trim(substr($valor, 0, $long));
			if($vacio && empty($valor)) 
                            return false;
                        //$valor=mysql_real_escape_string($valor);
			break;
		case 'i' :
			$valor = (int)$valor;
			break;
		case 'd' :
			$valor = (double)($valor);
			break;
		case 'b' :
			$valor = ($valor) ? true : false;
			break;
                case 'f' :
                        if(empty ($valor))
                            $valor=$vacio;
                        else
                            $valor = floatval($valor);
			break;
		case 'a' :
			$valor = (array)$valor;
			break;
		default: return false;
	}

	return $valor;
}
 /*******************************************************************************
 * funcFechaToInt($fecha) convierte fecha DD/MM/AAAA a fecha Unix
 * Convierte las fechas con formato DD/MM/AAAA a fecha Unix
 * @param String $fecha fecha con formato "DD/MM/AAAA"
 * @return Int Fecha Unix
 ******************************************************************************/ 
function funcFechaToInt($fecha){
    
            $fecha=str_replace("/", "", $fecha);

            $dia=  substr($fecha, 0, 2);
            $mes=  substr($fecha, 2, 2);
            $ano=  substr($fecha, 4, 4);
            $fecha=$ano.$mes.$dia;
            $fecha= mktime("12", "1", "20", $mes, $dia, $ano);
            return  $fecha;
}
 /*******************************************************************************
 * funcCortartexto($texto,$tamano) Acortar texto
 * Acortar el texto a la loongitud deseada
 * @param String $texto texto a acortar
 * @param Int $tamanho longitud de la cadena resultante
 * @return String Cadena acortada a la longitud deseada
 ******************************************************************************/ 
function funcCortartexto($texto,$tamano){
            // Inicializamos las variables
            $contador = 0;
            $longitud=strlen($texto);
            // Cortamos la cadena por los espacios
            if(strlen($texto)>$tamano){
                $arrayTexto = explode(' ',$texto);
                $texto = '';
                // Reconstruimos la cadena

                while($tamano >= strlen($texto) + strlen($arrayTexto[$contador])){
                    $texto .= ' '.$arrayTexto[$contador];
                    $contador++;
                }
            }
            return  ($tamano < $longitud)? $texto."..." : $texto;

}
 /*******************************************************************************
 * funcText2url($string) Convierte texto para poder ser mostrado en las url
 * Convierte texto para poder ser mostrado en las url pero no sustituye 
 * las funciones urldecode() y urlencode(), realizan cosas distintas
 * @param String $string texto a convertir 
 * @return String Cadena convertida para ser mostrada en la url
 ******************************************************************************/ 
function funcText2url($string) {
            $spacer = "-";
            $string = trim($string);
            $string = strtolower($string);
            $string = trim(preg_match("/[^ A-Za-z0-9_]/", " ", $string));
            $string = preg_match("/[ \t\n\r]+/", "-", $string);
            $string = preg_match("/ /", $spacer, $string);
            $string = preg_match("/[ -]+/", "-", $string);
            return $string;
}
 /*******************************************************************************
 * funcPaginador($PAGS=0,$PAG=0) Crea una cadena con el paginador
 * @deprecated Ahora se realiza esta tarea con la clase desing (desing.php) 
 * @param Int $PAGS Togal de páginas a generar
 * @param Int $PAGS Página actual
 * @return String Cadena con el paginador resultante
 ******************************************************************************/ 
function funcPaginador($PAGS=0,$PAG=0){
            $html="";
            $html="<div class='paginador'>";
            for($i=0;$i<$PAGS;$i++)
                if($i==$PAG)
                    $html.="<a class=\"selec\" href=\"#\">". ($i+1) ."</a>";//{$_SERVER['PHP_SELF']}?pag={$i}
                else
                    $html.="<a href=\"?pag={$i}\">". ($i+1) ."</a>";
            $html.="</div>";
            return $html;
    }

 /*******************************************************************************
 * funcMuestraArray($variable, $height="20em" hace un var_dump a un array
 * realiza un var_dump, es decir, muestra todo el contenido de un array con su descripcion.
 * Esta función añade las etiqueta pre para que se muestre por pantalla. 
 * Muy util para ver todos los valores de un array durante la fase de desarrollo.
 * @param Array $variable array para imprimir su contenido
 * @param String $height  Altura del cuadro que se mostrará
 ******************************************************************************/
function funcMuestraArray($variable, $height="20em") {
        echo "<pre style=\"border: 1px solid #000; height: {$height}; overflow: auto; margin: 0.5em;\">";
        var_dump($variable);
        echo "</pre>\n";
}
?>